package com.lee.poi.demo.service;

public enum RegxRuleNinePointFour {

    A("项目名称1", "项目名称：([\\s\\S]*?)委托方"),
    AA("项目名称2", "甲方委托乙方就([\\s\\S]*?)项目进行"),
    B("甲方名称1", "委托方（甲方）：([\\s\\S]*?)受托方[\\s\\S]*?签订时间"),
    BB("甲方名称2", "技术服务合同[\\s\\S]*?委托方（甲方）：([\\s\\S]*?)受托方"),
    C("乙方名称1", "受托方（乙方）：([\\s\\S]*?)签订时间"),
    CC("乙方名称2", "技术服务合同[\\s\\S]*?受托方（乙方）：([\\s\\S]*?)鉴于"),
    D("含税金额大写", "人民币（大写）([\\s\\S]*?)（[\\s\\S]*?（含税）"),
    E("含税金额小写", "人民币（大写）[\\s\\S]*?&yen;([\\s\\S]*?)）（含税）"),
    F("不含税金额大写", "不含税价人民币([\\s\\S]*?)（"),
    I("不含税金额小写", "不含税价人民币[\\s\\S]*?&yen;([\\s\\S]*?)）"),
    J("增值税税率", "增值税税率([\\s\\S]*?)%"),
    K("增值税税额", "增值税税额([\\s\\S]*?)元。"),
    L("付款比例信息一次或分期", "技术服务报酬由甲方([\\s\\S]*?)（一次或分期）支付乙方"),  // 特殊处理
    LL("付款比例信息1", "具体支付方式和时间如下：[\\s\\S]*?（1）([\\s\\S]*?)。"),  // 特殊处理
    LLL("付款比例信息2", "具体支付方式和时间如下：[\\s\\S]*?（1）[\\s\\S]*?（2）([\\s\\S]*?)（3）"),  // 特殊处理
    LLLL("付款比例信息3", "具体支付方式和时间如下：[\\s\\S]*?（1）[\\s\\S]*?（2）[\\s\\S]*?（3）([\\s\\S]*?)。"),  // 特殊处理
    //    签署页
    M("签署页甲方法定代表人", "授权代表（签字）：([\\s\\S]*?)法定代表人（负责人）或[\\s\\S]*?授权代表（签字）"),
    NA("签署页乙方法定代表人", "授权代表（签字）：[\\s\\S]*?授权代表（签字）：([\\s\\S]*?)签订日期："),

    O("签署页甲方签订日期", "签订日期：([\\s\\S]*?)签订日期："),
    OA("签署页乙方签订日期", "签订日期：[\\s\\S]*?签订日期：([\\s\\S]*?)地址"),

    P("签署页甲方开户银行", "开户银行：([\\s\\S]*?)开户银行："),
    PA("签署页乙方开户银行", "开户银行：[\\s\\S]*?开户银行：([\\s\\S]*?)账号："),


    Q("签署页甲方账户", "账号：([\\s\\S]*?)账号："),
    QA("签署页乙方账户", "账号：[\\s\\S]*?账号：([\\s\\S]*?)纳税人识别号|账号：[\\s\\S]*?账号：([\\s\\S]*?)统一社会信用代码"),

    R("签署页甲方统一社会信用代码", "纳税人识别号：([\\s\\S]*?)统一社会信用代码|统一社会信用代码：([\\s\\S]*?)统一社会信用代码"),
    RA("签署页乙方统一社会信用代码", "纳税人识别号：[\\s\\S]*?统一社会信用代码：([\\s\\S]*?)附件|统一社会信用代码：[\\s\\S]*?统一社会信用代码：([\\s\\S]*?)附件"),

    S("签署页甲方盖章", "（盖章）([\\s\\S]*?)乙方："),
    SA("签署页乙方盖章", "（盖章）[\\s\\S]*?（盖章）([\\s\\S]*?)法定代表人\\(负责人\\)或"),


    T("争议解决方式", "争议解决[\\s\\S]*?双方约定选择的解决方式为：([\\s\\S]*?)。"),
    U("仲裁机构", "争议解决[\\s\\S]*?仲裁：提交([\\s\\S]*?)仲裁委员会"),
    V("诉讼地方", "争议解决[\\s\\S]*?（2）诉讼：向([\\s\\S]*?)所在地人民法院提起诉讼。"),
    W("合同份数", "本合同一式([\\s\\S]*?)份[\\s\\S]*?附件"),
    X("甲方合同份数", "甲方执([\\s\\S]*?)份[\\s\\S]*?附件"),
    XX("乙方合同份数", "乙方执([\\s\\S]*?)份[\\s\\S]*?附件"),
    Y("特别约定", "特别约定[\\s\\S]*?以特别约定为准。([\\s\\S]*?)（以下无正文）"),
    Z("日期", "服务期限为从([\\s\\S]*?)日。"), // 所有的年月日

    //空位抽取 做非空审核
    AAAA("签订地点", "签订地点：([\\s\\S]*?)有效期限"),
    DDDD("有效期限", "有效期限：([\\s\\S]*?)目"),
    BBBB("技术服务的目标", "技术服务的目标：([\\s\\S]*?)1\\.2"),
    CCCC("技术服务的内容", "技术服务的内容：([\\s\\S]*?)1\\.3"),
    DD("技术服务的方式", "技术服务的方式：([\\s\\S]*?)2\\."),
    EE("技术服务地点", "技术服务地点：([\\s\\S]*?)2\\.2"),
    FF("技术服务期限", "技术服务期限：([\\s\\S]*?)2\\.3"),
    GG("技术服务进度", "技术服务进度：([\\s\\S]*?)2\\.4"),
    HH("技术服务质量要求", "技术服务质量要求：([\\s\\S]*?)3\\."),
    II("提供的工作条件1", "提供的工作条件：[\\s\\S]*?（1）([\\s\\S]*?)（2）"),
    III("提供的工作条件2", "提供的工作条件：[\\s\\S]*?（2）([\\s\\S]*?)3\\.2"),
    JJ("提供的技术资料1", "提供的技术资料：[\\s\\S]*?（1）([\\s\\S]*?)（2）"),
    JJJ("提供的技术资料2", "提供的技术资料：[\\s\\S]*?（2）([\\s\\S]*?)3\\.3"),
    KK("提供条件和协作的方式", "甲方提供上述工作条件和协作事项的时间及方式：([\\s\\S]*?)4\\."),
    LLLLL("甲方负责人", "甲方负责人：([\\s\\S]*?)，电话"),
    LLLLLL("甲方负责人电话", "甲方负责人：[\\s\\S]*?电话：([\\s\\S]*?)；"),
    MM("乙方负责人", "乙方负责人：([\\s\\S]*?)，电话"),
    MMM("乙方负责人电话", "乙方负责人：[\\s\\S]*?电话：([\\s\\S]*?)。"),
    NN("乙方完成的形式", "乙方完成技术服务工作的形式：([\\s\\S]*?)6\\.2"),
    UUU("验收标准", "技术服务工作成果的验收标准：([\\s\\S]*?)6\\.3"),

    OO("验收方法", "技术服务工作成果的验收方法：([\\s\\S]*?)6\\.4"),
    OOO("验收时间地点", "验收的时间和地点：([\\s\\S]*?)7\\."),
    OOOO("甲方新技术成果", "甲方利用乙方[\\s\\S]*?，归([\\s\\S]*?)（甲、乙、双）"),
    OOOOO("乙方新技术成果", "乙方利用甲方[\\s\\S]*?，归([\\s\\S]*?)（甲、乙、双）"),

    QQ("甲方涉密人员范围", "甲方涉密人员范围：([\\s\\S]*?)乙方涉密人员范围"),
    QQQ("乙方涉密人员范围", "乙方涉密人员范围：([\\s\\S]*?)8\\.3"),

    RR("乙方逾期违约金", "每逾期1天，应向甲方支付相当于技术服务报酬([\\s\\S]*?)%"),
    RRR("逾期解除合同天数", "逾期超过([\\s\\S]*?)日的，甲方有权单方解除合同"),

    SS("未通过验收违约金", "9\\.1\\.3[\\s\\S]*?技术服务报酬([\\s\\S]*?)%"),
    TT("乙方违反合同的保密义务违约金", "9\\.1\\.4[\\s\\S]*?技术服务报酬([\\s\\S]*?)%"),

    UU("乙方原因解约违约金", "合同因乙方原因解[\\s\\S]*?服务报酬([\\s\\S]*?)%"),

    VV("甲方无故不接受劳动成果违约金", "甲方无正当理由不接受工作成果的[\\s\\S]*?并向乙方支付相当于技术服务报酬([\\s\\S]*?)%"),
    VVV("甲方无故逾期接受劳动成果违约金", "甲方无正当理由逾期接受工作成果的[\\s\\S]*?技术服务报酬([\\s\\S]*?)%"),
    VVVV("甲方无故逾期接受劳动成果天数", "甲方无正当理由逾期接受工作成果的[\\s\\S]*?逾期超过([\\s\\S]*?)日的"),

    WW("甲方违反合同保密义务违约金", "甲方违反合同约定的保密义务[\\s\\S]*?技术服务报酬([\\s\\S]*?)%"),

    XXX("变更或解除合同条件", "有下列情形之一的[\\s\\S]*?（1）[\\s\\S]*?（2）([\\s\\S]*?)10\\.3"),

    YY("名词和技术术语的解释1", "名词和技术术语的定义和解释[\\s\\S]*?12\\.1([\\s\\S]*?)12\\.2"),
    YYY("名词和技术术语的解释2", "12\\.名词和技术术语的定义和解释[\\s\\S]*?12\\.2([\\s\\S]*?)13\\."),
    QE("技术背景资料","13\\.1技术背景资料：([\\s\\S]*?)13\\.2"),
    QAA("可信性论证报告","13\\.2可行性论证报告：([\\s\\S]*?)13\\.3"),
    QW("技术评价报告","13\\.3技术评价报告：([\\s\\S]*?)13\\.4"),
    QZ("技术标准和规范","13\\.4技术标准和规范：([\\s\\S]*?)13\\.5"),
    QP("原始设计和工艺文件","13\\.5原始设计和工艺文件：([\\s\\S]*?)13\\.6"),
    QL("其它","13\\.6其他：([\\s\\S]*?)14\\.");

    private String regxName;
    private String regx;

     RegxRuleNinePointFour(String regxName, String regx) {
        this.regxName = regxName;
        this.regx = regx;
    }

    public static String takeRegx(String regxName) {
        for (RegxRuleNinePointFour regxRule : RegxRuleNinePointFour.values()) {
            if (regxRule.regxName.equals(regxName)) {
                return regxRule.regx;
            }
        }
        return null;
    }


}
